home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1991 July
/
1991-07.d64
/
jupiter moons
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
5KB
|
194 lines
100 rem copyright 1991 - compute publications intl ltd - all rights reserved
110 data metis,40,128,0,.295,0,0
120 data adrastea,40,129,0,.295,0,120
130 data amalthea,270x165x150,180,.003,.489,0,281
140 data thebe,80,222,.013,.670,0,331
150 data io,3640,422,.004,1.77,0,233
160 data europa,3100,671,.01,3.55,0,273
170 data ganymede,5270,1070,.001,7.16,0,81
180 data callisto,4990,1885,.007,16.69,0,332
190 data leda,16,11110,.147,240,280,309
200 data himalia,96,11470,.158,251,249,101
210 data lysithea,16,11710,.107,260,11,297
220 data elara,32,11740,.207,260,149,81
230 data ananke,16,21200,.17,-610,180,36
240 data carme,16,22600,.21,-690,6,239
250 data pasiphae,16,23500,.38,-734,0,90
260 data sinope,16,23700,.28,-760,226,243
270 data our moon,3478,384,.055,27.32,0,0
280 ifi=0theni=1:load"jup.ml",8,1
290 poke55,0:poke56,136:clr:q=16
300 dimsn(255),cs(255),na$(q),di$(q),cr(q),ra(q),ec(q),pe(q),pa(q),ea(q)
310 v=53248:pp=34816:sp=36856
320 s1=53200:s2=s1+8:s3=s2+8
330 yc=139.5:xc=173.5:mi=0:rj=71.6
340 tt$=" the moons of jupiter [146] "
350 cp$="compute publications intl ltd (c) 1991"
360 wt$="calculations will take a few seconds ...":cm$="comparison"
370 dj$=" distance from center of jupiter":tk$="thousand km"
380 c0=06:c1=0:c2=14:c3=11:sc=1.3
390 data 2,3,4,5,6,7,8,9,10,12,13,14,15,4,3,2
400 print"[147]"chr$(142)chr$(8):ct=11
410 pokev+32,c0:pokev+33,c1:poke646,c2
420 print cp$:print
430 printtab(8)tt$:printwt$
440 fori=0to255:j=i*(NULL)/128
450 sn(i)=sin(j):cs(i)=cos(j):next
460 forn=0toq
470 readna$(n),di$(n),ra(n),ec(n),pe(n),j,k
480 pa(n)=(j*256/360+.5)and255
490 ea(n)=(k-j)/360:next
500 forn=0toq-1:readcr(n):next
510 fori=pptopp+126:pokei,0:next
520 pokepp+28,112:pokepp+31,112
530 pokepp+34,112:pokepp+89,112
540 pokepp+92,248:pokepp+95,248
550 pokepp+98,248:pokepp+101,112
560 t=0:print"[147]"tt$"main menu":print
570 printchr$(113)"jupiter"
580 fori=0to15:print" "na$(i):next
590 print:print"up/down=select moons"
600 print"g=go":print"c=compare":print"e=end program"
610 ifmi>6thenmi=0
620 ifmi<0thenmi=6
630 bi=(6andmi)*2
640 bo=bi+3+4*(1andmi)
650 print"":fori=0to15
660 j=113:ifi<biori>bothenj=32
670 printchr$(j):next
680 poke198,0
690 getk$:ifk$="g"then750
700 ifk$="c"then1200
710 ifk$=""thenmi=mi+1:goto610
720 ifk$="[145]"thenmi=mi-1:goto610
730 ifk$<>"e"then690
740 print"[147]":end
750 print"[147]"tt$:printwt$
760 onmi+1gosub770,780,790,800,810,820,830:goto840
770 tl=.0004:ts=.005:th=.04:return
780 tl=.005:ts=.02:th=.1:return
790 tl=.02:ts=.1:th=.4:return
800 tl=.1:ts=.2:th=.7:return
810 tl=.4:ts=3:th=12:return
820 tl=1:ts=4:th=16:return
830 tl=1.5:ts=6:th=45:return
840 ma=ra(bo)*(1+ec(bo))
850 ys=99/ma:xs=ys*sc
860 qb=bo-bi:cn=0
870 forn=0toqb:pokev+39+n,cr(n+bi):next
880 fori=0to23:pokes1+i,0:next:sys49281
890 poke53247,c1+c3*16:sys49521
900 fori=36800toi+63:pokei,32:next
910 sys49208
920 ifmi<3then960
930 fori=158to160:forj=98to100
940 poke253,i:poke254,0:poke255,j
950 sys49373:next:next:goto1000
960 fori=0to255
970 poke253,159.5+xs*rj*sn(i):poke254,0
980 poke255,99.5+ys*rj*cs(i)
990 sys49373:next
1000 gosub1980:gosub1600
1010 forn=0toqb:m=n+bi:e=ec(m):a=ea(m)+t/pe(m)
1020 a=((a-int(a))*256+.5)and255:ife<.1thenx=-cs(a):y=sn(a):goto1050
1030 z=(e*e-1)/(e*cs(a)-1):x=2*e-z*cs(a):y=z*sn(a)
1040 i=pa(m):j=x*cs(i)+y*sn(i):y=y*cs(i)-x*sn(i):x=j
1050 y=int(yc+y*ra(m)*ys):x=int(xc+x*ra(m)*xs)
1060 ify<40ory>239orx<14orx>333theny=0:x=0
1070 pokes1+n,int(x/256):pokes2+n,xand255:pokes3+n,y:next
1080 sys49281:sys49331:ifhfthen1150
1090 print" "right$(" "+str$(int(t)),3)"[145]"
1100 getk$:ifk$=""thent=t+ts:goto1010
1110 ifk$="x"thengosub1600:goto1150
1120 ifk$="f"thents=ts*1.5:ifts>ththents=th
1130 ifk$="s"thents=ts/1.5:ifts<tlthents=tl
1140 goto1100
1150 poke198,0
1160 getk$:ifk$="n"then1660
1170 ifk$="g"thengosub1630:goto1100
1180 ifk$="x"thengosub2010:goto560
1190 goto1160
1200 print"[147]"tt$"compare menu":print
1210 print"p=period":print
1220 print"d=distance":print
1230 print"e=eccentricity":print
1240 print"s=size":print
1250 print"x=main menu"
1260 poke198,0
1270 getk$:ifk$="x"then560
1280 k=val(k$)
1290 ifk$="p"then1340
1300 ifk$="d"then1410
1310 ifk$="e"then1460
1320 ifk$="s"then1520
1330 goto1270
1340 print"[147]"tt$cm$:print
1350 print"orbit period"
1360 print"(earth days)":print
1370 fori=0to16
1380 printna$(i),abs(pe(i));
1390 ifpe(i)<0thenprint"retrograde";
1400 print:next:goto1570
1410 print"[147]"tt$cm$:print
1420 print"average distance from planet center"
1430 print"(thousand km)":print
1440 fori=0to16
1450 printna$(i),ra(i):next:goto1570
1460 print"[147]"tt$cm$:print
1470 print"orbit eccentricity"
1480 print"(circle=0)":print
1490 fori=0to16
1500 printna$(i),:ifec(i)<.01thenprint0:next:goto1570
1510 printec(i):next:goto1570
1520 print"[147]"tt$cm$:print
1530 print"diameter"
1540 print"(km)":print
1550 fori=0to16
1560 printna$(i),di$(i):next:goto1570
1570 print:print"x=menu":poke198,0
1580 getk$:ifk$="x"then1200
1590 goto1580
1600 gosub1790
1610 print"g=go n=name x=menu[145]"
1620 hf=1:return
1630 gosub1790
1640 print" earth days f=fast s=slow x=halt[145]"
1650 hf=0:return
1660 poke198,0
1670 gosub1790:cm=cn+bi
1680 print"*"na$(cm)"*"tab(11)"i=info n=next x=continue[145]"
1690 j=9
1700 j=j+1:ifj=10thenpokesp+cn,33
1710 ifj>19thenj=0:pokesp+cn,32
1720 getk$:ifk$=""then1700
1730 pokesp+cn,32
1740 ifk$="i"then1800
1750 ifk$="x"thengosub1600:goto1150
1760 ifk$<>"n"then1690
1770 cn=cn+1:ifcn>qbthencn=0
1780 goto1660
1790 print" [145]":return
1800 gosub2010
1810 print"[147]"tt$:print
1820 print"*"na$(cm)"*":print
1830 print"average"dj$:printra(cm)tk$:print
1840 print"minimum"dj$:printint(ra(cm)*(1-ec(cm))+.5)tk$:print
1850 print"maximum"dj$:printint(ra(cm)*(1+ec(cm))+.5)tk$:print
1860 print"orbit eccentricity"
1870 ifec(cm)<.01thenprint0:print:goto1890
1880 printec(cm):print
1890 print"orbit period"
1900 printabs(pe(cm))"earth days":print
1910 print"diameter"
1920 print" "di$(cm)" km":print
1930 print"x=continue"
1940 poke198,0
1950 getk$
1960 ifk$="x"thengosub1980:goto1660
1970 goto1950
1980 poke808,234:sys49232:sys49248
1990 pokev+21,2^(qb+1)-1:print""
2000 fori=2to24:print"";:next:return
2010 sys49474:sys49497:poke808,237
2020 pokev+21,0:return